package com.qiuyuliantu.base.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qiuyuliantu.common.annotation.Excel;
import com.qiuyuliantu.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 纪念日提醒对象 qiu_anniversary_reminders
 *
 * @author 卷卷
 * @date 2024-11-19
 */
public class QiuAnniversaryReminders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识符，自增主键 */
    private Long id;

    /** 背景 */
    @Excel(name = "背景")
    private String background;

    /** 纪念日的名称 */
    @Excel(name = "纪念日的名称")
    private String name;

    /** 纪念日的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "纪念日的日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dateNew;

    /** 纪念日的日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "纪念日的日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dateOld;

    /** 提醒日期类型，可以是 "new"，“old”，“new-old” */
    @Excel(name = "提醒日期类型")
    private String reminderDateType;

    /** 提醒类型，可以是 "one-time"（一次性）或 "recurring"（重复性） */
    @Excel(name = "提醒类型，可以是 ", readConverterExp = "一=次性")
    private String reminderType;

    /** 提醒日期，不可为空 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提醒日期，不可为空", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reminderDate;

    /** 通知方式，可以是 "email"（电子邮件）、"sms"（短信）或 "app notification"（应用通知） */
    @Excel(name = "通知方式，可以是 ", readConverterExp = "电=子邮件")
    private String notificationMethod;

    /** 通知是否已发送，默认为 `false`（未发送） */
    @Excel(name = "通知是否已发送，默认为 `false`", readConverterExp = "未=发送")
    private Integer notificationSent;

    /** 接收者信息，可为空 */
    @Excel(name = "接收者信息")
    private String recipient;

    /** 消息内容，可为空 */
    @Excel(name = "消息内容")
    private String message;

    /** 消息内容，可为空 */
    @Excel(name = "类型")
    private String type;

    /** 共享用户账号 */
    @Excel(name = "共享用户账号")
    private String sharedAccount;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 状态（0正常 1停用） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 标签 */
    @Excel(name = "标签")
    private String label;

    /** 提前几天 */
    @Excel(name = "提前几天")
    private long days;

    /** 特定天数几年天数 */
    @Excel(name = "特定天数几年天数")
    private String specialDay;


    private String upToNowInfo;
    private String upToNowDayInfo;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setBackground(String background)
    {
        this.background = background;
    }

    public String getBackground()
    {
        return background;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setDateNew(Date dateNew)
    {
        this.dateNew = dateNew;
    }

    public Date getDateNew()
    {
        return dateNew;
    }
    public void setDateOld(Date dateOld)
    {
        this.dateOld = dateOld;
    }

    public Date getDateOld()
    {
        return dateOld;
    }
    public void setReminderDateType(String reminderDateType)
    {
        this.reminderDateType = reminderDateType;
    }

    public String getReminderDateType()
    {
        return reminderDateType;
    }
    public void setReminderType(String reminderType)
    {
        this.reminderType = reminderType;
    }

    public String getReminderType()
    {
        return reminderType;
    }
    public void setReminderDate(Date reminderDate)
    {
        this.reminderDate = reminderDate;
    }

    public Date getReminderDate()
    {
        return reminderDate;
    }
    public void setNotificationMethod(String notificationMethod)
    {
        this.notificationMethod = notificationMethod;
    }

    public String getNotificationMethod()
    {
        return notificationMethod;
    }
    public void setNotificationSent(Integer notificationSent)
    {
        this.notificationSent = notificationSent;
    }

    public Integer getNotificationSent()
    {
        return notificationSent;
    }
    public void setRecipient(String recipient)
    {
        this.recipient = recipient;
    }

    public String getRecipient()
    {
        return recipient;
    }
    public void setMessage(String message)
    {
        this.message = message;
    }

    public String getMessage()
    {
        return message;
    }
    public void setSharedAccount(String sharedAccount)
    {
        this.sharedAccount = sharedAccount;
    }

    public String getSharedAccount()
    {
        return sharedAccount;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setLabel(String label)
    {
        this.label = label;
    }

    public String getLabel()
    {
        return label;
    }
    public void setDays(Integer days)
    {
        this.days = days;
    }

    public long getDays()
    {
        return days;
    }

    public String getUpToNowInfo() {
        return upToNowInfo;
    }

    public void setUpToNowInfo(String upToNowInfo) {
        this.upToNowInfo = upToNowInfo;
    }

    public String getUpToNowDayInfo() {
        return upToNowDayInfo;
    }

    public void setUpToNowDayInfo(String upToNowDayInfo) {
        this.upToNowDayInfo = upToNowDayInfo;
    }


    public String getSpecialDay() {
        return specialDay;
    }

    public void setSpecialDay(String specialDay) {
        this.specialDay = specialDay;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("background", getBackground())
            .append("name", getName())
            .append("dateNew", getDateNew())
            .append("dateOld", getDateOld())
            .append("reminderDateType", getReminderDateType())
            .append("reminderType", getReminderType())
            .append("reminderDate", getReminderDate())
            .append("notificationMethod", getNotificationMethod())
            .append("notificationSent", getNotificationSent())
            .append("recipient", getRecipient())
            .append("message", getMessage())
            .append("sharedAccount", getSharedAccount())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .append("status", getStatus())
            .append("type", getType())
            .append("label", getLabel())
            .append("days", getDays())
            .append("specialDay", getSpecialDay())
            .append("upToNowDayInfo", getUpToNowDayInfo())
            .append("upToNowInfo", getUpToNowInfo())
            .toString();
    }


}
